iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 7
0
Modern Web

我的30天MVC從零到不知道多少學習筆記系列 第 7

從零開始的MVC開發-LinQ 排序資料

  • 分享至 

  • xImage
  •  

今天來寫寫使用linQ做資料排序的方式
這應該是在資料呈現上非常常用到的語法
所以這邊也來記錄一下!

LinQ的排序資料主要使用 OrderBy() 函式
如果要多次排序則會再運用到 ThenBy() 函式

OrderBy() 跟 ThenBy() 還各有一個姊妹方法
分別是 OrderByDescending()ThenByDescending()
看他們的名字也知道差別在哪,他們的差別就只是在後者是做反向排序而已
其餘用法和使用時機都相同

這邊要注意的是多次排序記得要使用OrderBy(X).ThenBy(Y)來做排序
使用多次OrderBy()的話,呈現的結果會是最後一筆OrderBy()排出來的樣子

以下來寫寫實際使用的程式碼

 var Students=new[]
{
    new{name="Anne",score=87},
    new{name="Bob",score=75},
    new{name="Kevin",score=53},
    new{name="Emma",score=89},
    new{name="Steven",score=95}
};

//單次排序的方式
var sortName=Students.OrderBy(c=>c.name);
var sortScore=Students.OrderBy(c=>c.score);

//印出結果
Console.WriteLine("--單次排序以名字排序--");
foreach(var n in sortName){
    Console.WriteLine("name:{0} score:{1}",n.name,n.score);
}
Console.WriteLine("--單次排序以分數排序--");
foreach(var n in sortScore){
    Console.WriteLine("name:{0} score:{1}",n.name,n.score);
}

//多次排序方式
var sortByNameScore=Students.OrderBy(c=>c.name).ThenBy(c=>c.score);

//印出結果
Console.WriteLine("By name+score");
foreach(var n in sortByNameScore){
    Console.WriteLine("name:{0} score:{1}",n.name,n.score);
}

使用方式非常簡單!
順帶一提,本文中的例子中只排名字跟排完名字再排分數
兩者排出來的東西是相同的XD
除非有一樣的名字啊 否則後面分數根本不用排了~XDD
所以這例子只是個使用說明,不要去在意邏輯哈哈

那今天就筆記到這!
再說一次重點 多次排序請用OrderBy(X).ThenBy(Y)!!
好~打完收工!


上一篇
從零開始的MVC開發-LinQ Select出部分資料
下一篇
從零開始的MVC開發-LinQ 存取元素
系列文
我的30天MVC從零到不知道多少學習筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言